package zen2;

import java.awt.event.InputEvent;
import java.util.Collections;
import java.util.EnumSet;
import java.util.Set;

/**
 * A keyboard modifier.
 */
public enum Modifier {
	META(InputEvent.META_DOWN_MASK), CTRL(InputEvent.CTRL_DOWN_MASK), ALT(
			InputEvent.ALT_DOWN_MASK), SHIFT(InputEvent.SHIFT_DOWN_MASK), ALT_GR(
			InputEvent.ALT_GRAPH_DOWN_MASK);

	final int modifier;

	private Modifier(int modifier) {
		this.modifier = modifier;
	}

	private static final Modifier[] MODIFIERS = values();

	static Set<Modifier> modifierSet(int intModifiers) {
		if (intModifiers == 0) {
			return Collections.emptySet();
		}
		EnumSet<Modifier> set = EnumSet.noneOf(Modifier.class);
		for (Modifier modifier : MODIFIERS) {
			if ((intModifiers & modifier.modifier) != 0) {
				set.add(modifier);
			}
		}
		return set;
	}
}